kvm – matoken's blog https://matoken.org/blog Is there no plan B? Sat, 02 Nov 2024 10:56:20 +0000 ja hourly 1 https://wordpress.org/?v=6.8.3 https://matoken.org/blog/wp-content/uploads/2025/03/cropped-1865f695c4eecc844385acef2f078255036adccd42c254580ea3844543ab56d9-32x32.jpeg kvm – matoken's blog https://matoken.org/blog 32 32 Virt-Manager上のOpenBSD 7.6の解像度が高すぎる https://matoken.org/blog/2024/11/02/resolution-of-openbsd-7-6-on-virt-manager-is-too-high/ https://matoken.org/blog/2024/11/02/resolution-of-openbsd-7-6-on-virt-manager-is-too-high/#respond Sat, 02 Nov 2024 10:56:18 +0000 https://matoken.org/blog/?p=4206

Virt-Manager上のOpenBSD 7.6 amd64ですが,ディスプレイ解像度が妙に高く使いづらいです.ホストよりも広く2024×2024もあります.
Xだけならxorgの設定でどうにでもなりそうですが,その前のフレームバッファコンソールの時点から高く使いづらい.
調べて修正してみました.

$ dmesg | grep ^efifb0
efifb0 at mainbus0: 2048x2048, 32bpp

マニュアルの以下の部分を見るとamd64のUEFI環境だとbootプロンプト上で machine gop で解像度を確認したり設定できるようです.確認してみます.

gop [mode]
On efifb(4) systems, sets the video resolution in pixels to mode. If mode is not given, a list of available modes is shown.

— BOOT(8) System Manager’s Manual (amd64)
https://man.openbsd.org/amd64/boot.conf#gop
>> OpenBSD/amd64 BOOTX64 3.67
boot> machine gop
Mode 0: 640 x 480 (stride = 640)
Mode 1: 800 x 480 (stride = 800)
Mode 2: 800 x 600 (stride = 800)
Mode 3: 832 x 624 (stride = 832)
Mode 4: 960 x 640 (stride = 960)
Mode 5: 1024 x 600 (stride = 1024)
Mode 6: 1024 x 768 (stride = 1024)
Mode 7: 1152 x 864 (stride = 1152)
Mode 8: 1152 x 870 (stride = 1152)
Mode 9: 1280 x 720 (stride = 1280)
Mode 10: 1280 x 760 (stride = 1280)
Mode 11: 1280 x 768 (stride = 1280)
Mode 12: 1280 x 800 (stride = 1280)
Mode 13: 1280 x 960 (stride = 1280)
Mode 14: 1280 x 1024 (stride = 1280)
Mode 15: 1360 x 768 (stride = 1360)
Mode 16: 1366 x 768 (stride = 1366)
Mode 17: 1400 x 1050 (stride = 1400)
Mode 18: 1440 x 900 (stride = 1440)
Mode 19: 1600 x 900 (stride = 1600)
Mode 20: 1600 x 1200 (stride = 1600)
Mode 21: 1680 x 1050 (stride = 1680)
Mode 22: 1920 x 1080 (stride = 1920)
Mode 23: 1920 x 1200 (stride = 1920)
Mode 24: 1920 x 1440 (stride = 1920)
Mode 25: 2000 x 2000 (stride = 2000)
Mode 26: 2048 x 1536 (stride = 2048)
Mode 27: 2048 x 2048 (stride = 2048)
Mode 28: 2560 x 1440 (stride = 2560)
Mode 29: 2560 x 1600 (stride = 2560)

Current Mode = 12

640×480〜2560×1600まで選べて,現在は12の1280×800ということになっています.
Mode 27になっていそうなんだけどなと思いつつ明示的に12を指定して起動すると,

boot> machine gop 12
Current Mode = 12

期待したとおり1280×800になりました.

$ grep efifb0\ at /var/log/messages | tail -2
Nov  2 18:36:01 fugu /bsd: efifb0 at mainbus0: 2048x2048, 32bpp
Nov  2 18:46:43 fugu /bsd: efifb0 at mainbus0: 1280x800, 32bpp

しかしこれはアドホックな手順で,再起動すると2048×2048に戻ってしまいました.

/etc/boot.confに書いておきます.変わったのがわかるように今回はMode 9を指定しました.

$ echo machine gop 9 | doas tee -a /etc/boot.conf

これで再起動するとMode 9の1280×720で起動してきました.

$ dmesg | grep ^efifb0 | tail -1
efifb0 at mainbus0: 1280x720, 32bpp
環境
fugu$ ./pfetch
      _____       matoken@fugu.my.domain
    \-     -/     os     OpenBSD 7.6
 \_/         \    host   pc-i440fx-9.1
 |        O O |   uptime 9m
 |_  <   )  3 )   pkgs   75
 / \         /    memory 53M / 224M
    /-_____-\
ホスト環境
$ dpkg-query -W virt-manager libvirt-clients libvirt-daemon qemu-user qemu-system-x86
libvirt-clients 10.8.0-1
libvirt-daemon  10.8.0-1
qemu-system-x86 1:9.1.1+ds-2
qemu-user       1:9.1.1+ds-2
virt-manager    1:4.1.0-4
$ /sbin/modinfo kvm_intel | head -1
filename:       /lib/modules/6.11.5-amd64/kernel/arch/x86/kvm/kvm-intel.ko.xz
$ lsb_release -dr
Description:    Debian GNU/Linux trixie/sid
Release:        n/a
$ arch
x86_64
]]>
https://matoken.org/blog/2024/11/02/resolution-of-openbsd-7-6-on-virt-manager-is-too-high/feed/ 0
Linux Virt-Manager上のOpenBSD 7.6でserialを有効に https://matoken.org/blog/2024/11/02/enable-serial-on-openbsd-7-6-on-linux-virt-manager/ https://matoken.org/blog/2024/11/02/enable-serial-on-openbsd-7-6-on-linux-virt-manager/#respond Fri, 01 Nov 2024 22:07:16 +0000 https://matoken.org/blog/?p=4203

OpenBSD 7.6 amd64をLinuxのVirt-Manager上で動かしています.serialを有効にしてhostからvirsh consoleで繋げるようにしてみました.

初期状態ではディスク暗号化のアンロックやbootプロンプトは見えます.bootプロンプトでserialを有効にすることもできますが毎回やらないといけないので面倒です.

こちらのFAQを参考に設定しました.

ブートプロセスをserialへ(amd64/i386)

/etc/boot.conf に以下を追記
set tty com0

ログインプロンプト以降のserial対応

/etc/ttys を編集して, tty00 からの行を書き換えます.

書き換え前
tty00   "/usr/libexec/getty std.9600"   unknown off
書き換え後
tty00   "/usr/libexec/getty std.9600"   vt220   on  secure
Note
9600部分はserial速度で,115200でも動作しました.

これで次回以降serialが有効になり,virsh consoleで接続して利用できます.

$ virsh console openbsd7.6
Connected to domain 'openbsd7.6'
Escape character is ^] (Ctrl + ])
probing: pc0 com0 mem[640K 239M 8M 548K 3M 176K]
disk: hd0 sr0*
>> OpenBSD/amd64 BOOTX64 3.67
Passphrase:
>> OpenBSD/amd64 BOOTX64 3.67
boot>
booting sr0a:/bsd: 19916757+4318224+413632+0+1236992 [1541351+128+1395768+1092498]=0x1c89138
entry point at 0x1001000
[ using 4030776 bytes of bsd ELF symbol table ]
Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California.  All rights reserved.
Copyright (c) 1995-2024 OpenBSD. All rights reserved.  https://www.OpenBSD.org

OpenBSD 7.6 (GENERIC) #332: Mon Sep 30 08:45:17 MDT 2024
    deraadt@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC
  : (中略)
Sat Nov  2 06:52:42 JST 2024

OpenBSD/amd64 (fugu.my.domain) (tty00)

login: matoken
Password:
Last login: Sat Nov  2 06:28:00 on tty00
OpenBSD 7.6 (GENERIC) #332: Mon Sep 30 08:45:17 MDT 2024

Welcome to OpenBSD: The proactively secure Unix-like operating system.

Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code.  With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.

You have new mail.
fugu$ neofetch                                                                                              _    matoken@fugu.my.domain
                                    (_)   ----------------------
              |    .                      OS: OpenBSD 7.6 amd64
          .   |L  /|   .          _       Host: QEMU Standard PC (i440
      _ . |\ _| \--+._/| .       (_)      Uptime: 1 min
     / ||\| Y J  )   / |/| ./             Packages: 44 (pkg_info)
    J  |)'( |        ` F`.'/        _     Shell: ksh v5.2.14 99/07/13.
  -<|  F         __     .-<        (_)    Terminal: /dev/tty00
    | /       .-'. `.  /-. L___           CPU: Intel i7-10510U (1) @ 1
    J \      <    \  | | O\|.-'  _        Memory: 60MiB / 224MiB
  _J \  .-    \/ O | | \  |F    (_)
 '-F  -<_.     \   .-'  `-' L__
__J  _   _.     >-'  )._.   |-'
 `-|.'   /_.          \_|   F
  /.-   .                _.<
 /'    /.'             .'  `\
  /L  /'   |/      _.-'-\
 /'J       ___.---'\|
   |\  .--' V  | `. `
   |/`. `-.     `._)
      / .-.\
      \ (  `\
       `.\

fugu$
ホスト環境
$ dpkg-query -W virt-manager libvirt-clients libvirt-daemon qemu-user qemu-system-x86
libvirt-clients 10.8.0-1
libvirt-daemon  10.8.0-1
qemu-system-x86 1:9.1.1+ds-2
qemu-user       1:9.1.1+ds-2
virt-manager    1:4.1.0-4
$ /sbin/modinfo kvm_intel | head -1
filename:       /lib/modules/6.11.5-amd64/kernel/arch/x86/kvm/kvm-intel.ko.xz
$ lsb_release -dr
Description:    Debian GNU/Linux trixie/sid
Release:        n/a
$ arch
x86_64
]]>
https://matoken.org/blog/2024/11/02/enable-serial-on-openbsd-7-6-on-linux-virt-manager/feed/ 0
OpenBSD 7.5/7.6インストーラがVirtualBox/KVMでkernel panic https://matoken.org/blog/2024/10/28/openbsd-7-5_7-6-installer-kernel-panics-on-virtualbox_kvm/ https://matoken.org/blog/2024/10/28/openbsd-7-5_7-6-installer-kernel-panics-on-virtualbox_kvm/#respond Sun, 27 Oct 2024 21:59:52 +0000 https://matoken.org/blog/?p=4193

Linux上の仮想マシン上でOpenBSDを導入しようと思ったのですが,QEMU KVM,VirtualBoxで試したところどちらもディスクへのインストール中にkernel panicになってしまいます.
OpenBSD 7.5 amd64で起こり,最近リリースされたOpenBSD 7.6 amd64で再度試して同様の動きとなりました.
今回検索して解決しました.

VirtualBox

isoイメージのインストーラでディスクへの書き込み中にこのような感じでpanicとなります.

vbox panic

wdc_atapi_start: not ready, st = 40
   fatal protection fault in supervisor mode
trap type 4 code 0 rip ffffffff810073c9 cs 8 rflags 10286 cr2 27874f000 cpl 3 rsp ffff80001cce4a58
gsbase 0xffffffff81938ff0  kgsbase 0x0 =
panic: trap type 4, code=0, pc=ffffffff810073c9
syncing disks... 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8  giving up

検索すると以下のページを見つけました.

2つの方法が載っています.今回自分の環境ではこの両方の設定が必要でした.

  • ディスクを可変サイズではなく固定サイズにする.(仮想マシン作成時に「全サイズの事前割当て」にチェック)

  • 「設定」「システム」「マザーボード」「拡張機能」の「I/O ACPI を有効化」のチェックを外す.

vbox panic disk
vbox panic io apic

vbox panic neofetch

QEMU KVM

KVMでも同様にディスク書き込み時にpanicになります.よく見るとVirtualBoxとはメッセージが少し違いますね.

openbsd panic kvm panic

wdc_atapi_start: not ready, st = S0_
fatal protection fault in supervisor mode
trap type 4 code 0 rip ffffffff810073c9 cs 8 rflags 10286 cr2 7ea021334f88 cpl 3 rsp ffff80001dSaS6d0
gsbase 0xffffffff81938ff0  kgsbase 0x0
panic: trap type 4, code=0, pc=ffffffff810073c9
syncing disks...8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8  giving up

dump to dev 17,1 not possible
rebooting...

はじめ設定からI/O ACPI関連の設定を探そうかとも思いましたがやっぱり検索すると以下のページを見つけました.今回の現象そのままぽいです.

インストールメディアの仮想ディスクデバイスの「ディスクバス」を`IDE`から`SATA`に変更でOKそうです.
virt-manager利用時には,新しい仮想マシンの作成時に「インストールの前に設定をカスタマイズする」にチェックを入れディスクバスを変更して進めるとインストールに成功しました.

openbsd panic kvm virtmanager01
openbsd panic kvm virtmanager02

openbsd panic kvm neofetch

環境
$ dpkg-query -W virtualbox qemu-system-x86 virt-manager
qemu-system-x86 1:9.1.1+ds-2
virt-manager    1:4.1.0-4
virtualbox      7.0.20-dfsg-1
$ lsb_release -dr
Description:    Debian GNU/Linux trixie/sid
Release:        n/a
$ arch
x86_64
]]>
https://matoken.org/blog/2024/10/28/openbsd-7-5_7-6-installer-kernel-panics-on-virtualbox_kvm/feed/ 0
qcow2 イメージをマウント https://matoken.org/blog/2018/09/26/mount-qcow2-image/ https://matoken.org/blog/2018/09/26/mount-qcow2-image/#respond Wed, 26 Sep 2018 12:39:40 +0000 http://matoken.org/blog/?p=2141

qemuやKVMでよく使われるqcow2イメージのマウントを行いました.

イメージの確認
$ sudo qemu-img info /var/lib/libvirt/images/Debian.qcow2
image: /var/lib/libvirt/images/Debian.qcow2
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 20G
cluster_size: 65536
Format specific information:
	compat: 1.1
	lazy refcounts: true
	refcount bits: 16
	corrupt: false
nbd モジュールの読み込み
$ sudo modprobe nbd
qcow2 イメージのバインド
$ sudo qemu-nbd -c /dev/nbd0 /var/lib/libvirt/images/Debian.qcow2
$ sudo fdisk -l /dev/nbd0
ディスク /dev/nbd0: 20 GiB, 21474836480 バイト, 41943040 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x3c0808c8

デバイス    起動 開始位置 終了位置   セクタ サイズ Id タイプ
/dev/nbd0p1 *        2048   499711   497664   243M 83 Linux
/dev/nbd0p2        501758 41940991 41439234  19.8G  5 拡張領域
/dev/nbd0p5        501760 41940991 41439232  19.8G 83 Linux
kpartx でデバイスマッピング
$ sudo kpartx /dev/nbd0
nbd0p1 : 0 497664 /dev/nbd0 2048
nbd0p2 : 0 2 /dev/nbd0 501758
nbd0p5 : 0 41439232 /dev/dm-1 2
dm-crypt で暗号化されているのでデバイスをオープン
$ sudo cryptsetup open /dev/nbd0p5 crypt
Enter passphrase for /dev/nbd0p5:
lvm領域なのでスキャンする
$ sudo lvmdiskscan
    :
  /dev/mapper/crypt                                     [     <19.76 GiB] LVM physical volume
  /dev/nbd0p5                                           [     <19.76 GiB]
  /dev/debian-vg/root                                   [      18.75 GiB]
  /dev/debian-vg/swap_1                                 [       1.00 GiB]
    :
マウントして内容確認
$ sudo mount -o ro /dev/debian-vg/root /mnt
$ ls /mnt/
bin   dev  home        initrd.img.old  lib64       media  opt   root  sbin  sys  usr  vmlinuz
boot  etc  initrd.img  lib             lost+found  mnt    proc  run   srv   tmp  var  vmlinuz.old
Table of Contents

環境

$ dpkg-query -W kpartx qemu-utils fdisk cryptsetup lvm2 mount linux-image-`uname -r`
cryptsetup      2:2.0.4-2
fdisk   2.32.1-0.1
kpartx  0.7.7-1
linux-image-4.18.0-1-amd64      4.18.8-1
lvm2    2.02.176-4.1
mount   2.32.1-0.1
qemu-utils      1:2.12+dfsg-3
$ lsb_release -d
Description:    Debian GNU/Linux unstable (sid)
$ uname -m
x86_64
]]>
https://matoken.org/blog/2018/09/26/mount-qcow2-image/feed/ 0